package com.hsnn.medstgmini.settlement.controller;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hsnn.medstgmini.Constants;
import com.hsnn.medstgmini.settlement.model.form.BankAcctLog;
import com.hsnn.medstgmini.settlement.service.BankAcctInfoManager;
import com.hsnn.medstgmini.sys.model.SysUser;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category 配送企业帐户信息
 * @author 蔡春龙
 * @date 2015年7月21日
 */
@Controller
@RequestMapping("/acctInfoComp")
public class AcctInfoCompController {

	private static final Logger log = Logger
			.getLogger(AcctInfoCompController.class);

	@Autowired
	private BankAcctInfoManager bankAcctInfoManager;

	@Autowired
	private HttpServletRequest request;

	@Autowired
	private HttpSession session;

	/**
	 * @category 获取当前登陆人信息
	 * @date 2015年6月14日
	 * @return
	 */
	public SysUser getUser() {
		return (SysUser) session.getAttribute(Constants.USERINFO);
	}

	/**
	 * @category 跳转到配送企业账户信息页面
	 * @author 蔡春龙
	 * @date 2015年7月21日
	 * @param @param request
	 * @param @return
	 */
	@SuppressWarnings("unchecked")
	@RequestMapping("/toDeliveryAcctInfo")
	public String toDeliveryAcctInfo(Model model) {
		log.info("enter method");
		Pagination page = new Pagination(request);
		SysUser user = getUser();

		// 查询银行卡信息
		bankAcctInfoManager.getBankAcctInfoList(page, null, user);
		List<Map<String, Object>> bankAcctList = (List<Map<String, Object>>) page
				.getRows();
		Map<String, Object> bankAcctInfo = null;
		if (bankAcctList != null && !bankAcctList.isEmpty()) {
			bankAcctInfo = bankAcctList.get(0);
		}
		model.addAttribute("bankAcctInfo", bankAcctInfo);

		// 查询开户行列表
		List<Map<String, String>> bankList = bankAcctInfoManager.getBankList();
		model.addAttribute("bankList", bankList);

		return "/settle/account/delivery/deliveryAcctInfo";
	}

	/**
	 * @category 跳转到日志页面
	 * @author 言科
	 * @date 2015年7月23日
	 */
	@RequestMapping("/toDeliveryAcctInfoLog")
	public String toDeliveryAcctInfoLog(Model model, String bankAcctId) {
		model.addAttribute("bankAcctId", bankAcctId);
		return "/settle/account/delivery/deliveryAcctInfoLog";
	}

	/**
	 * @category 跳转到日志页面
	 * @author 言科
	 * @date 2015年7月23日
	 */
	@RequestMapping("/getDeliveryAcctInfoLog")
	@ResponseBody
	public Pagination getDeliveryAcctInfoLog(BankAcctLog bankAcctLog) {
		Pagination page = new Pagination(request);
		try {
			bankAcctInfoManager.getBankAcctLogList(bankAcctLog, page);
			page.setSuccess(true);
		} catch (Exception e) {
			log.error("",e);
		}
		return page;
	}

}
